1、Java 中 finally 语句块不一定被执行
a.没被try包住的部分抛出异常或被return
b.try里面执行了System.exit (0)，java 虚拟机被终止运行（死机，断电）。
2、java代码中如果有跳转retrun会再return前执行finally。
public class Test { 
public static void main(String[] args) {  
System.out.println(test());  
    }  
 
public static String test() {  
try {  
System.out.println("try block");  
return test1();  
} finally {  
System.out.println("finally block");  
        }  
    }  
public static String test1() {  
System.out.println("return statement");  
return "after return";  
    }  
}
执行结果：
try block 
exception block 
finally block 
reture value of test() : 2
3、try finally中如果try和finally里面均有return，先执行finally里的return再执行try里的return（但test方法先被实现）